using System;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Application.Dtos;

namespace Joy.Erp.BasicArchives.ItemMasters
{
    public class BillOfMaterialsDto : ExtensibleEntityDto<Guid>, IMultiTenant, IHasConcurrencyStamp
    {
        /// <summary>
        /// 所属租户
        /// </summary>
        public Guid? TenantId { get; set; }
        /// <summary>
        /// 层级
        /// </summary>
        public int Level { get; set; }
        /// <summary>
        /// 父级编号
        /// </summary>
        public Guid? ParentId { get; set; }
        /// <summary>
        /// 物料清单名称
        /// </summary>
        public string DisplayName { get; set; }
        /// <summary>
        /// 版本
        /// </summary>
        public string Version { get; set; }
        /// <summary>
        /// 料品
        /// </summary>
        public Guid ItemMasterId { get; set; }
        /// <summary>
        /// 料品
        /// </summary>
        public ItemMasterDto ItemMaster { get; set; }
        /// <summary>
        /// 料品编号
        /// </summary>
        public string ItemCode { get; set; }
        /// <summary>
        /// 料品名称
        /// </summary>
        public string ItemName { get; set; }
        /// <summary>
        /// 规格型号
        /// </summary>
        public string ItemSpec { get; set; }
        /// <summary>
        /// 用量
        /// </summary>
        public decimal UseCount { get; set; }
        /// <summary>
        /// 母件用量
        /// </summary>
        public decimal ParentCount { get; set; }
        /// <summary>
        /// 用量单位
        /// </summary>
        public Guid UnitId { get; set; }
        /// <summary>
        /// 用量单位
        /// </summary>
        public AuxiliaryUnitDto Unit { get; set; }
        /// <summary>
        /// 编号
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// 来源类型
        /// </summary>
        public string SourceType { get; set; }
        /// <summary>
        /// 来源主键
        /// </summary>
        public string SourceKey { get; set; }
        /// <summary>
        /// 来源时间
        /// </summary>
        public DateTime? SourceCreatedOn { get; set; }
        /// <summary>
        /// 是否删除
        /// </summary>
        public bool IsDeleted { get; set; }
        /// <summary>
        /// 删除人
        /// </summary>
        public Guid? DeleterId { get; set; }
        /// <summary>
        /// 删除时间
        /// </summary>
        public DateTime? DeletionTime { get; set; }
        /// <summary>
        /// 最后编辑时间
        /// </summary>
        public DateTime? LastModificationTime { get; set; }
        /// <summary>
        /// 最后编辑人
        /// </summary>
        public Guid? LastModifierId { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreationTime { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        public Guid? CreatorId { get; set; }
        /// <summary>
        /// 修改锁
        /// </summary>
        public string ConcurrencyStamp { get; set; }
    }
}